package Time_13;

import java.util.*;
/*
* 接龙队列
*
* */
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] nums = new int[n];
        for (int i = 0; i < n; i++) {
            nums[i] = scanner.nextInt();
        }
        
        // dp数组表示以第i个数字结尾的最长接龙数列的长度
        int[] dp = new int[n];
        Arrays.fill(dp, 1); // 初始化为1，因为每个数字本身就是一个长度为1的接龙数列
        
        int result = 0; // 最长接龙数列的长度
        for (int i = 1; i < n; i++) {
            for (int j = 0; j < i; j++) {
                // 如果当前数字的首位数字等于前一个数字的末位数字，则可以构成接龙数列
                if (String.valueOf(nums[i]).charAt(0) == String.valueOf(nums[j]).charAt(String.valueOf(nums[j]).length() - 1)) {
                    dp[i] = Math.max(dp[i], dp[j] + 1);
                }
            }
            result = Math.max(result, dp[i]);
        }
        
        // 最少删除的数字个数等于原数组长度减去最长接龙数列的长度
        int minDeletions = n - result;
        System.out.println(minDeletions);
    }
}
